package test

import org.apache.commons.lang.time.DateUtils

class User {

	String login
	String password
	String email
	Boolean active = false
	Date birthDate
	
    static constraints = {
		email(email:true)
		login(length:3..10, blank:false)
		password(blank:false)
    }
	
	// nizej sa metody korzystajace z dynamicznie generowanych finderow
	// kazda klasa domenowa ma takie metody ktore pozwalaja szukac na podstawie 1 lub 2 pol z klasy
	// np. User.findAllByLoginAndPassword("login", "haslo"), User.countByActive(false) 
	// oprocz findAllBy..., ktory zwraca liste, jest tez findBy... - zwraca jeden i countBy... - zwraca ilosc
	
	static List<User> findAllActive() {
		return User.findAllByActive(true)
	}
	
	static List<User> findChildren() {
		Date eighteenYearsAgo = DateUtils.addYears(new Date(), -18)
		return User.findAllByBirthDateBetween(eighteenYearsAgo, new Date())
	}
	
	static List<User> findAdults() {
		List<User> users = User.list()
		users.removeAll(User.findChildren())
		return users
	}
	
}
